package com.qiyu.mall.user.interfaces.service;


import com.qiyu.mall.user.interfaces.dto.AccountDTO;
import com.qiyu.mall.user.interfaces.dto.AccountReqDTO;
import com.qiyu.mall.user.interfaces.dto.WxPhoneDetailDTO;

import java.util.List;

/**
 * 账号服务
 *
 * @author linhao
 * @date 2019/12/14
 * @Version V1.0
 */
public interface AccountService {

    /**
     * 根据用户id查询
     *
     * @param accountId
     * @return
     */
    AccountDTO getAccountDTO(Integer accountId);

    /**
     * 保存用户手机号码
     *
     * @param encryptedData
     * @param token
     * @param iv
     * @return
     */
    WxPhoneDetailDTO saveAccountPhone(String encryptedData, String token, String iv);

    /**
     * 更新微信基础信息
     *
     * @param accountDTO
     * @return
     */
    AccountDTO updateWxInfo(AccountDTO accountDTO);

    /**
     * 按照openid查询
     *
     * @param openId
     * @return
     */
    AccountDTO getByOpenId(String openId);


    /**
     * 更新登录时间
     *
     * @param openId
     */
    void updateLoginTime(String openId);

    /**
     * 注册账户
     *
     * @param nickName
     * @param openId
     * @return
     */
    AccountDTO saveAccount(String nickName,String openId);


    /**
     * 根据用户id查询
     *
     * @param accountReqDTO
     * @return
     */
    public List<AccountDTO> selectAccountDTOList(AccountReqDTO accountReqDTO);


}
